#region usings

using System;
using System.Collections;

using CUtil;
using System.Collections.Generic;
#endregion

namespace CStock
{
	/// <summary>
	/// Summary description for IDataClass.
	/// </summary>
	public interface IDataClass : IDataProvider //ICloneable,IComparable,
	{
		#region quotes properties

       

        bool CreateNewQuote_Bond_FromInterestRate(DateTime dt, double myPercentage_InterestCB);

        double CalculateBondYield(DateTime forDate);

		#endregion


        NameObjectCollection Equity { get;set;}
        NameObjectCollection EarningPerShare { get;set;}
        NameObjectCollection CashFlow { get;set;}
        NameObjectCollection ReturnOfInvestment{ get;set;}

        NameObjectCollection EquityGrowthCollection { get;}
        NameObjectCollection EarningPerShareGrowthCollection { get;}
        NameObjectCollection CashFlowGrowthCollection { get;}
        NameObjectCollection ReturnOfInvestmentGrowthCollection { get;}

        bool BondType { get;set;}
        double BondInterestRate { get;set;}
        double BondIssuePrice{ get;set;}
        DateTime BondIssueDate{ get;set;}
        DateTime BondExpiryDate{ get;set;}
        double BondYield { get;}



        double EquityGrowthLast{ get;}
        double EarningPerShareGrowthLast{ get;}
        double CashFlowGrowthLast { get;}
        double ReturnOfInvestmentGrowthLast{ get;}
        double PriceEarningPerShare{ get;}
        //double CalculateGrowthRate(NameObjectCollection myNameObjectCollection, DateTime myDateEnd);
        NameObjectCollection CalculateGrowthRateCollection(NameObjectCollection myNameObjectCollection);


        bool CreateNewQuoteFromLastTradedPrice(DateTime dt);

        new IDataItem Parent { get;set;}
		#region Properties
        bool TradeStockOrders();
        bool UpdateOrderBook(DateTime myDateTime);

        IOrders OrderStockBuy { get;set;}

        IOrders OrderStockSell { get;set;}
      

        double QuoteCurrent { get;}

        int TotalNumberOverall { get;set;}

		

		IDataClass Clone();
        
		#endregion

		#region Methods

		int IndexOf(DateTime dt);
		int IndexFindGreaterThan(DateTime dt);
		int IndexFindSmallerThanStartEnd(DateTime dt);
        bool ComputeIndicators_Profile(IProfile myprofile);

		
		DateTime DateOf(int index);
		void ReEvaluates();
	

		//IIndicator GetIndicator(string indFullName,ITradeSystem ts);
        //bool Indicators_Calculate_ForTradeSystem(ITradeSystem tradeSystem);

        IIndicator Get_Indicator_ByName(string indFullName);

        bool Get_Indicators_ForTradeSystem(bool refresh, ITradeSystem ts);

		

	

		#endregion



        bool UpdateLastQuote(IQuote myNewQuote);

		

       

	}
}
